1. Area of the Art
The present invention relates generally to programming a remote control device. More particularly, the present invention relates to programming a remote control device using a set top box to provide feedback and guidance.
2. Description of the Background Art
A remote control device is an example of an electronic device used for the remote operation of a machine or electronic device. Typically, a remote control device is used to issue commands from a distance to a television (TV) or some other consumer electronic device (e.g., stereo systems, video cassette recorders (VCR), digital video disc (DVD) players, digital video recorders (DVR), etc.). In the 21st Century, many homes have so many consumer electronic devices that there may be as many as four or more remote control devices in just one room of any given home. For example, in order to operate a home theater system, a user may require one remote control device for a cable or satellite receiver, another remote control device for the VCR, a further remote control device for the DVD player, yet another remote control device for the TV and audio amplifier, etc. Often, these remote control devices must be used sequentially, and this can be confusing, unwieldy and frustrating to the user.
Remote control devices associated with these consumer electronic devices are usually small, wireless, handheld objects with an array of buttons for adjusting various settings such as channel/station, volume, on/off, etc. Most remote control devices are battery-powered and communicate to their respective associated devices via infra-red (IR) and/or radio frequency (RF) signals. Usually, a particular and/or unique IR or RF device code is assigned to the particular device the remote control device is communicating with and/or controlling. The device code is a number that represents a collection of device commands. The device code is determined by the manufacturer of a universal remote control and used to program the universal remote control to control other devices (e.g., TV, VCR, etc.). Each device command is a sequence of bits that may be transmitted through IR or RF in some pre-defined protocol (e.g. RC5). These device commands are selected by the original device manufacturer of the receiving device (e.g. the VCR or TV). Thus, each IR or RF device code identifies an associated collection of particular and/or unique IR or RF device commands. Each device command corresponds to a function on a device (e.g., “volume up”, “volume down”, “channel up”, “channel down”, “on/off” or the like). Thus, a user's selection of a particular device code automatically selects the device commands associated with that particular device code. The IR or RF device code is determined by the manufacturer of a remote control device associated with a particular electronic device (e.g., a TV, VCR, etc.) and may only function for that particular remote control model. Thus, an electronics manufacturer can assign a particular ER or RF device code (i.e., the device code itself comprising one or more device commands) to a specific brand/model TV set it manufactures and another particular IR or RF device code (comprising one or more device commands) to a specific brand/model VCR it also manufactures. Other electronics manufacturers use different IR or RF device codes (comprising one or more device commands) for their products.
A universal remote control device is a type of remote control device that can be programmed to operate various brands of one or more types of consumer electronic devices. Some universal remote control devices can only control a set number of consumer electronic devices, as determined by the number of device codes (and their associated device commands) programmed into the remote control device by the manufacturer of the universal remote control device, while other universal remote control devices allow the user to program in new control device codes (and their associated device commands) to the universal remote control device. Typically, universal remote control devices have built-in descriptions, commonly referred to as a code library or database, on how to communicate with other electronic devices such as TVs, VCRs, DVRs, DVD players and the like. These code libraries may be in the form of collections of device commands; each collection being identified by a particular device code. The code library or database stores all the device codes and their associated device commands. However, as new consumer electronic devices are constantly entering the marketplace, these code libraries become outdated over time and the remote control device must be updated to accommodate this. A printed list of device codes may come with the remote control device at the time the remote control device is purchased as either a stand-alone product or included with a consumer product (e.g., TV, VCR, etc.). The printed list of device codes represents device codes (and their associated device commands) already programmed into the remote control device.
Even remote control devices sold with a particular electronic device may include universal remote capabilities for other types of electronic devices, which allows the remote control device to control other electronic devices beyond the particular electronic device (e.g., a VCR remote programmed to operate various brands of televisions) the remote control device came with at the time of purchase. Large numbers of IR or RF device codes (and their associated device commands) for various brands and models of electronic devices can be stored within a memory of a remote control device (i.e., in a code library or database within the memory). As the number of electronic devices increases, the number of device codes and their associated device commands in the code library or database (stored in a non-volatile storage memory in the remote control device) also increases. The code library or database is loaded into the remote control device at the time the remote control device is manufactured. Most universal remote control devices sold today are device-based remote controls where the user presses a button associated with a desired electronic device (e.g., a TV) to select that electronic device (i.e., the TV) for control and then uses the remaining buttons to actually control the functions of that single electronic device (i.e., the TV). To start controlling another electronic device (e.g., a VCR), the user presses a different device button (i.e., the button marked “VCR”) and the remote control device then starts sending commands to the new electronic device (i.e., the VCR). Typical “mode” buttons on this type of remote control device are labeled “TV”, “DVD”, “Receiver”, etc. Each different type of electronic device (e.g., TV, VCR or the like) controlled by the same remote control device more than likely uses a different device code (i.e., the device code for the TV is different from the device code for the VCR even if both electronic devices were made by the same brand manufacturer).
A television set-top box (e.g., a satellite broadcast set-top box, a cable converter box, etc.) may also include a remote control code library or database having a number of device codes and associated device commands in order to aid a consumer in programming the remote control device associated with the set-top box to be used to control various other devices (e.g., a TV, a DVD player, an audio system, etc.). Typically, the term “set-top box” (STB) describes a device that connects to a TV and some external source of signal, and turns the signal into content then displayed on the TV screen. Before cable-ready TV sets, an STB known as a cable converter box was used to receive analog cable TV channels and convert them to video that could be seen on a regular TV. Cable converter boxes are still used to descramble premium cable channels and to receive digital cable channels through a coaxial cable that is operationally connected to a cable service provider. STBs are also well-known to consumers who subscribe to a satellite broadcast network. The subscriber's satellite dish picks up signals from a satellite (or multiple satellites) and passes the signals on to the STB (also known as an Integrated Receiver and Decoder (IRD)) in the subscriber's house. The STB processes the signals and passes the signals on to a TV connected to the STB where the signals are translated into a visual display.
Like the remote control device, as the number of different brands/models of consumer electronic devices increases, the database (stored in a non-volatile storage memory located in the STB) also increases. Like the code library or database in the remote control device, a code library or database is loaded into the STB at the time the STB is manufactured. A user seeking to control a desired electronic device (e.g., a TV) selects the programming or device codes stored in the code database of the remote control device or STB by selecting the type of electronic device (i.e., the TV) and brand name (e.g., SONY) of that electronic device (i.e., the TV) the user desires to program. The user can access these device codes through a set-up feature associated with the STB, as discussed below. The user programs the remote control device with one of the codes and tests the remote control device by trying to use the remote control device on the desired device (i.e., the TV). If the desired device (i.e., the TV) responds, programming is stopped. However, there is a chance that the desired device (i.e., the TV) may not work and another code may need to be entered. As with programming the remote control device using codes stored in the remote control device's code library or database, as outlined below, several device codes may be entered before the proper code for the desired device is found.
Problems arise when a user purchases a new and/or updated brand/model of electronic device (e.g., a new television, a new audio/stereo system, a new DVR, etc.) and the user's universal remote control device does not work with the new electronic device. Problems also arise when the user's old remote control device needs to be replaced and the new remote control device needs to be programmed for use with the user's current electronic devices. Manufacturers of consumer appliances and devices often reuse the same device codes on many similar devices (though for each manufacturer and device type, there are usually multiple device codes in use since there may be several different models of the same type of device made by the manufacturer). If a remote control device having universal remote functionality does not work with a particular new device that a consumer has purchased, the consumer can check the user's manual that came with the universal remote device when the consumer purchased it (i.e., if the user can even find his/her user's manual assuming that he/she even bothered to keep the user's manual), and then look up the appropriate device code for the particular device (i.e., brand, type of device, model, etc.) he/she purchased as well as the steps on how to program the remote control device to associate the appropriate device code with the new consumer electronic device. Although most users of remote control devices often have no difficulty operating a remote control device after the remote control device has been set-up and/or programmed for them, the very act of programming a universal remote control device can be a daunting process to technologically-unsophisticated individuals who have trouble understanding the programming instructions for the remote control device that require certain buttons to be pushed in certain sequences. A user will typically contact a customer service representative via telephone in order to learn the appropriate device code for the new consumer electronic device and be instructed in how to program the remote control device into associating the device code with the new consumer electronic device. The conversation with the customer service representative may turn out to be an exercise in futility and end up in frustration. Even if the conversation with the customer service representative is helpful to the user, telephone calls to customer service call centers can be costly when one adds up all the thousands upon thousands of code-related customer service calls made each year by consumers. In some cases, it may be necessary for either the customer, cable company or DBS provider to incur the expense of replacing the remote control device if the remote control device is not responsive to any of the device codes provided to the consumer.
Traditionally, there are two ways of programming a universal remote control device with device codes to operate a particular type/brand electronic device: (1) stand alone; and (2) through two-way communication. Stand alone programming is the most prevalent form of remote control programming. Stand alone programming requires the user to enter key strokes on the remote control device according to a guide, which may be printed or shown on a display. This method is often difficult for a user to complete, so steps have been taken to try to aid the user, such as providing feedback on the remote control itself via blinking lights to indicate the status of the remote. For the average user this is still a complex and error prone process.
Two-way communication programming resolves many of the problems associated with stand alone programming. The user can select what the remote control should be programmed to via a visual interface on the display controlled by the STB, and once selection has been done, the STB will send the necessary information to the remote control via a two-way communication link. The disadvantage of this methodology is that a two-way interface adds components in both the remote control device and in the STB. The cost of these components is around one U.S. dollar ($1.00) for the STB and remote control device combined. A company like DIRECTV, Inc. has upwards of 40 million STBs deployed so the cost of these additional two-way interface components can be quite expensive (e.g., a $40 million dollar cost for DIRECTV). Further, the two-way communication approach is not compatible with equipment already deployed in the field as hardware changes are necessary, making it a lengthy process to roll out.
There is a need for improving the stand alone programming model by a stand alone programming process mimicking a two-way programming process without the addition (or associated cost) of two-way interface components. There is a further need for an improved stand alone programming model that is compatible with the STBs already deployed in the field.
Traditionally, in the stand alone programming scenario, the remote control device's relationship with the STB is one of non-awareness. That is, the remote control device is just an extension of the control buttons located on the front of the STB. There is a need for stand alone remote control programming that increases STB awareness to include the programming of the remote control device.
FIG. 1 illustrates a conventional approach to programming a remote control device. This approach includes an on-screen guide 10 for programming a remote control device associated with the STB, where the on-screen guide 10 is shown on a screen 12 of a display associated with the STB. However, the on-screen guide is a passive step-through guide lacking any interactivity with the user. A user initiates the programming process by navigating to a setup screen on the STB, through a sequence of button presses on the remote control device. Programming mode for the STB is limited to the STB sending signals to the display (e.g., television) associated with the STB to display a list of codes and a lot of text, as seen in FIG. 1, and does not contain any awareness of the state of the remote control device. The graphics displayed on the TV screen are static. In the programming mode, the user selects the type/brand of electronic device that the user wants to program device codes for into the remote control device. After selecting the type/brand of electronic device, the user sees static graphics comprising the on-screen guide 10 that provide at least one device code associated with that brand/model of electronic device (e.g., eight device codes for an RCA TV are illustrated) provided that the code library of the STB includes device codes for the particular type and brand of electronic device that the user desires to program. The static graphics instruct the user to make a first step by moving a “MODE” switch on the remote control device to “TV.” The second step instructs the user to then press “Mute+Select” keys on the remote control device until a light(s) (e.g., light emitting diode (LED)) above the “MODE” switch on the remote control device flashes twice. The only feedback provided to the user when the “Mute+Select” keys are pressed is the blinking of the LED on the remote control device. In the third step, the user is instructed to enter a device code. The device code is usually a string of numbers (e.g., five numbers). The user selects or enters the numbers corresponding to the device code chosen from the screen 12 by pushing number keys on the face of the remote control device. The static screen 12 does not indicate which number keys on the remote control device have been pressed by the user. The device code entered by the user using the keys of the remote control device is checked against an internal memory of the remote control device. The static screen 12 of the display does not indicate whether the code was successfully entered. That same static screen 12 merely provides that the user can test whether the attempt to program the remote control device with the device code worked by pressing the volume (“VOL”) button on the remote control device. The static screen 12 instructs the user that if the volume of the TV did not change, the user is to repeat the second and third steps with the next code and that if no codes work, the user is instructed to move the “MODE” switch on the remote control device to “DIRECTV” and select “MORE CODES” (as seen on the on-screen guide 10) Either no confirmation is provided of whether the code was accepted or not, or the LED on the remote control device blinks (e.g., twice if ok, and one long blink if not, but the meaning of theses blinks and their respective durations is not communicated to the user by the on-screen guide 10 and the user may not recognize that these blinks of the LED have any significance at all). This conventional remote control programming is not a user-friendly process. If the user presses a wrong key, the remote control device leaves the programming mode. If a user fails to enter something (e.g., a code) properly, the remote control device leaves the programming mode. Thus, programming requires a lot of trial-and-error work that can require a frustrating amount of needless repetition. The on-screen guide 10 provides that if the TV volume did change, the user has the option to program “TV INPUT” by repeating the second step and entering code “860”. To test, the user is instructed to press “TV INPUT.” Other than that, the on-screen guide 10 informs the user that that the user is done with programming and that the user should the “MODE” switch to “DIRECTV” and select “DONE.” Based on the foregoing, there is a clear need for an interactive guide/wizard that incorporates the extended awareness of the STB of the state of the remote control device. There is a further need for the remote control device to communicate its state to the STB because the STB gains awareness of the internal state of the remote control device. Once the STB gains awareness of the internal state of the remote control device, the STB can then communicate relevant and appropriate information to the user via the TV in the format of visual feedback.
As mentioned above, during conventional programming of the remote control device, the user presses a key sequence to enter a setup/programming mode on the remote control device. The user then subsequently enters keys on the remote control device to program the remote control device (with no feedback from the STB or TV). Also, the very process of a user switching their focus between looking at the display (to read the instructions on how to enter a code) and looking at the face of the remote control device (so that they can enter the proper code numbers) can lead to errors because no feedback is provided as to how many digits of the code that the user had entered or whether the user is even supposed to be trying to enter the code at that point. This conventional method is fairly error prone, and it is nearly impossible for the customer service representative (speaking with the user via telephone) to know where the user is in the programming process and be able to adequately guide the user through the process. This can result in great frustration and rage for the user which, in some cases, will be vented at the customer service representative.
There is a need for dramatically simplifying the programming of the remote control device by making the STB (as well as the user) aware of the state of the remote control device and by providing feedback to the user on the state of the programming of the remote control device. There is a further need for, at the same time, allowing for points of reference in the process to be shared with and communicated to the customer service representative by the user.
Conventional programming of the remote control device only provides feedback to the user through the LEDs located on a face of the remote control device. Furthermore, conventional programming requires that the user must know that two blinks of an LED means one thing and that four blinks of the LED mean another thing. A user manual for the remote control device may provide an explanation for what each number of blinks of the LED means but such manuals are frequently lost, misplaced or thrown out by the user. If the user presses the wrong key during conventional programming of the remote control device, there is no feedback indicating that a wrong key was pressed. If the remote control times out of programming mode or exits programming mode due to another error during conventional programming of the remote control device, the user is only informed by blinks of the LED on the remote control device. Thus, there is a need for an improved method of programming a remote control device that provides the user with feedback that is more informative than a particular number of blinks of an LED on the remote control device.
In view of the foregoing, there is a need for an improved method of programming a remote control device that provides a way for the remote control device to communicate state changes to the STB, and for the STB to then display what is going on in the remote control device in addition to guides and other information.
Accordingly, there is a need for all the improvements mentioned above with respect to programming a remote control device. There is also a need for a programming method that reduces the need to periodically replace remote control devices. There is a further need for a method of programming a remote control device that reduces and/or eliminates the need for a user to consult a customer service representative. There is an additional need for a method of programming a remote control device that uses existing communications connections between the remote control device and the STB. The present invention satisfies these needs and provides other related advantages.